package com.karry.yl.domain.baseinfo;

import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.karry.commons.base.SuperEntity;
import com.karry.yl.domain.personnel.Train;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;
import java.util.List;

/**
 * 从业人员信息
 *
 * @author Administrator
 */
@TableName("employee")
public class Employee extends SuperEntity {

    private String name; //姓名
    private String idNo;  //身份证号码
    private Long type;   //岗位 1:医生（部分等级） 2:护士（不分等级）  3:义工(没证) 4：护工 5：社工 6：消防
    private String postName;  //岗位名称
    private Integer grade; //持证等级 1:初级 2：中级 3：高级 4:未定级
    private Boolean trainee;  //是否培训
    private Boolean fullTime;  //全职
    private Integer status; //1:在职 2:离职
    private Long orgId; //组织机构Id
    private Long departmentId; //部门Id
    private String departmentName;  //部门名称
    private String avatar;   //头像

    private Integer gender;//性别

    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date birthday;//生日
    private String nation;//民族
    private Integer maritalStatus;//0未婚1已婚
    /**
     * "0">群众
     * "1">中共党员
     * "2">中共预备党员
     * "3">共青团员
     * "4">民革党员
     * "5">民盟盟员
     * "6">民建会员
     * "7">民进会员
     * "8">农工党党员
     * "9">致公党党员
     * "10">九三学社社员
     * "11">无党派人士
     * "12">台盟盟员
     */
    private Integer politicsStatus;

    /**
     * 0研究生
     * 1博士
     * 2大学本科
     * 3大学专科
     * 4中等专业学校
     * 5技工学校
     * 6高中
     * 7初中
     * 8小学
     * 9文盲
     * 10半文盲
     */
    private Integer culture;

    /**
     * 联系电话
     */
    private String contactPhone;

    /**
     * 紧急联系人电话
     */
    private String urgencyContactPhone;

    /**
     * 暂住地址
     */
    private String temporaryAddress;

    /**
     * 家庭地址
     */
    private String homeAddress;

    /**
     * 职称级别
     * 包含
     * "1">一级护理
     * "2">二级护理
     * "3">三级护理
     * "4">特级护理
     * "5">初级医师
     * "6">中级医师
     * "7">副高级医师
     * "8">正高级医师
     * "9">初级护士
     * "10">初级护师
     * "11">主管护师
     * "12">主任护师
     * "13">初级建(构)筑物消防员
     * "14">中级建(构)筑物消防员
     * "15">高级建(构)筑物消防员
     * "16">建(构)筑物消防技师
     * "17">建(构)筑物消防高级技师
     */
    private Integer jobTitle;

    /**
     * 身份证正面存储路径
     */
    private String identityCardJust;

    /**
     * 身份证反面存储路径
     */
    private String identityCardAgainst;

    /**
     * 劳动合同存储路径多张用逗号隔开
     */
    private String laborContract;

    /**
     * 从业人员绑定的户名信息
     * -1和null代表没有绑定用户信息
     */
    @JsonSerialize(using= ToStringSerializer.class)
    private Long userId;


    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public Integer getGender() {
        return gender;
    }

    public void setGender(Integer gender) {
        this.gender = gender;
    }

    public Date getBirthday() {
        return birthday;
    }

    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }

    public String getNation() {
        return nation;
    }

    public void setNation(String nation) {
        this.nation = nation;
    }

    public Integer getMaritalStatus() {
        return maritalStatus;
    }

    public void setMaritalStatus(Integer maritalStatus) {
        this.maritalStatus = maritalStatus;
    }

    public Integer getPoliticsStatus() {
        return politicsStatus;
    }

    public void setPoliticsStatus(Integer politicsStatus) {
        this.politicsStatus = politicsStatus;
    }

    public Integer getCulture() {
        return culture;
    }

    public void setCulture(Integer culture) {
        this.culture = culture;
    }

    public String getContactPhone() {
        return contactPhone;
    }

    public void setContactPhone(String contactPhone) {
        this.contactPhone = contactPhone;
    }

    public String getUrgencyContactPhone() {
        return urgencyContactPhone;
    }

    public void setUrgencyContactPhone(String urgencyContactPhone) {
        this.urgencyContactPhone = urgencyContactPhone;
    }

    public String getTemporaryAddress() {
        return temporaryAddress;
    }

    public void setTemporaryAddress(String temporaryAddress) {
        this.temporaryAddress = temporaryAddress;
    }

    public String getHomeAddress() {
        return homeAddress;
    }

    public void setHomeAddress(String homeAddress) {
        this.homeAddress = homeAddress;
    }

    public Integer getJobTitle() {
        return jobTitle;
    }

    public void setJobTitle(Integer jobTitle) {
        this.jobTitle = jobTitle;
    }

    public String getIdentityCardJust() {
        return identityCardJust;
    }

    public void setIdentityCardJust(String identityCardJust) {
        this.identityCardJust = identityCardJust;
    }

    public String getIdentityCardAgainst() {
        return identityCardAgainst;
    }

    public void setIdentityCardAgainst(String identityCardAgainst) {
        this.identityCardAgainst = identityCardAgainst;
    }

    public String getLaborContract() {
        return laborContract;
    }

    public void setLaborContract(String laborContract) {
        this.laborContract = laborContract;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getIdNo() {
        return idNo;
    }

    public void setIdNo(String idNo) {
        this.idNo = idNo;
    }

    public Long getType() {
        return type;
    }

    public void setType(Long type) {
        this.type = type;
    }

    public Integer getGrade() {
        return grade;
    }

    public void setGrade(Integer grade) {
        this.grade = grade;
    }

    public Boolean getTrainee() {
        return trainee;
    }

    public void setTrainee(Boolean trainee) {
        this.trainee = trainee;
    }

    public Boolean getFullTime() {
        return fullTime;
    }

    public void setFullTime(Boolean fullTime) {
        this.fullTime = fullTime;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public Long getOrgId() {
        return orgId;
    }

    public void setOrgId(Long orgId) {
        this.orgId = orgId;
    }

    public Long getDepartmentId() {
        return departmentId;
    }

    public void setDepartmentId(Long departmentId) {
        this.departmentId = departmentId;
    }

    public String getPostName() {
        return postName;
    }

    public void setPostName(String postName) {
        this.postName = postName;
    }

    public String getDepartmentName() {
        return departmentName;
    }

    public void setDepartmentName(String departmentName) {
        this.departmentName = departmentName;
    }

    public String getAvatar() {
        return avatar;
    }

    public void setAvatar(String avatar) {
        this.avatar = avatar;
    }
}
